home *** CD-ROM | disk | FTP | other *** search
/ TeX 1995 July / TeX CD-ROM July 1995 (Disc 1)(Walnut Creek)(1995).ISO / web / spiderweb / README < prev    next >
Text File  |  1993-04-04  |  5KB  |  103 lines

  1. This is Spidery WEB, tool for building a WEB system for the language
  2. of your choice.  It was probably gotten by anonymous ftp from the
  3. Comprehensive TeX Archive Network, possibly from niord.shsu.edu.  My
  4. colleagues and I have used Spider to build WEB systems for Ada, C,
  5. AWK, and other languages.  Spidery WEB is no longer supported; the
  6. lessons learned in its implementation and use have been applied to the
  7. design of `noweb', a much simpler literate-programming tool.  noweb is
  8. available by anonymous ftp from csservices.princeton.edu:pub/noweb.shar.Z.
  9. ORA Corp makes some effort to keep Spidery WEB working; bug reports,
  10. fixes, and new language descriptions can be sent to spider-bugs@oracorp.com.
  11. The rest of this file contains a brief description of Spidery WEB and
  12. this distribution; more extensive documentation can be found in the
  13. doc subdirectory.
  14.  
  15. INTRODUCTION
  16.  
  17. Spider reads a description of a programming language, and writes
  18. source code for a Weave and Tangle which support that language.  The
  19. language-dependent parts are derived from the description given
  20. Spider, and the language-independent parts are taken from ``master
  21. copies'' of Weave and Tangle.  The master copies are derived from
  22. Silvio Levy's CWEB, and the Tangle and Weave that are constructed are
  23. implemented in C.  Spider is implemented as an Awk program.
  24.  
  25. An exhaustive list of Spidery Web's features would interest only Web
  26. experts, but I do want to mention some features that I hope will
  27. encourage people to use Spidery {\tt WEB}.
  28.  
  29.     Tangle and Weave can read from multiple files (this feature is 
  30.     present in Levy's CWEB), and Tangle can write to multiple files.
  31.     Included files will be searched for on a path if not found in the
  32.     current directory.  These features make Spidery WEB more
  33.     usable on systems that have make.
  34.  
  35.     TANGLE can expand macros with multiple parameters.
  36.  
  37.     TANGLE writes #line directives, so you can debug at the    WEB
  38.     source level if your compiler respects the C~conventions for #line.
  39.  
  40.  
  41. Many features of WEB seem to exist only to compensate for deficiencies
  42. in PASCAL, and most of those were dropped in CWEB.  I have changed
  43. much of CWEB in order to avoid being bound too much by C conventions.
  44. As a result, there are dozens of minor differences between Spidery WEB
  45. and original WEB.  To give just one example, Spidery WEB supports
  46. octal and hexadecimal constants using WEB-style notation, not the C
  47. notation used in CWEB.
  48.  
  49. Spider can generate WEB systems for a variety of languages.  The
  50. author has written Spider description files for C, AWK, Ada, SSL (a
  51. language that describes attribute grammars to the Cornell Synthesizer
  52. Generator), the Larch Shared Language (a language for describing
  53. equational theories), and Dijkstra's language of guarded commands.
  54. Debugging the grammar that WEAVE uses to prettyprint the language is
  55. the most time-consuming part of creating a WEB system for a new target
  56. language, and Spider makes it trivial to change that grammar.  To make
  57. a Spider description file for an Algol-like language that uses infix
  58. expression notation, an experienced systems programmer should be able
  59. to adapt an existing Spider description file very quickly.
  60.  
  61. Spider's major limitations are lexical.  All Spidery WEBs assume that
  62. spaces and tabs in the input are not significant, except as
  63. separators; this makes it impossible to construct Spidery WEBs for
  64. languages like Fortran and Miranda, where the position of text on a
  65. line is significant.  (You would have to modify the ``master copies''
  66. of Tangle and Weave to change the lexical analyzer.)  The lexical
  67. structures of identifiers, string literals, and numeric literals are
  68. fixed.
  69.  
  70. Spider's major value is that is makes it possible to create a new WEB
  71. quickly, and to tinker with it easily.  My colleagues and I have used
  72. Spidery WEB to write programs in Ada, C, and SSL, and has been pleased
  73. with the result.  We have written in WEB an application of 24 thousand
  74. lines, and we are very pleased at how easy it has been to review and
  75. maintain this code.  I hope that the availability of Spidery WEB will
  76. encourage other groups to try literate programming, and that they,
  77. too, will be pleased with the results.
  78.  
  79.  
  80. WHAT YOU GET
  81.  
  82. Although Spider is complete and useful, this distribution contains bug
  83. fixes and enhancements that I have not folded into the code.
  84. I have tested this system only under Unix, but other users have
  85. provided Macintosh, MS-DOS, and OS/2 implementations.
  86.  
  87. This directory contains:
  88.  
  89.   bug-reports        reports of bugs that may or may not have been fixed
  90.   doc            manuals and articles about Spider
  91.   fixes-to-be-applied    bug fixes and enhancements
  92.   mac            Macintosh binaries
  93.   ms-dos        MS-DOS binaries
  94.   os2            OS/2 source-code changes
  95.   patches        patches for old versions of Spider (now useless)
  96.   src            Spider source code & instructions for building Spider
  97.   todo            a wish list
  98.   tools            auxiliary tools that might be useful with Spidery WEB
  99.  
  100. Send comments or bug reports to spider-bugs@oracorp.com
  101.  
  102. Norman Ramsey
  103.